# 方法一
'''
【思路点拨】
依旧还是一道数论题，蓝桥杯从前年的暴力杯，到去年的动规杯，最后来到今年的数论杯。

不禁感慨~真是一年比一年卷呀~小蓝感觉自己就是个包心菜，虽然很卷，但还是菜(/▽＼)
'''

'''
# 试题 D: 数位排序
n = int(input())
m = int(input())
d = dict()

# 创建一个空字典 d，并将从 1 到 n 的每个数作为字典的键，该数各个位上的数字之和作为对应键的值。

# 将数 i 转化为字符串，然后使用 map() 函数将字符串中的每个字符转化为整数，再使用 list() 函数将结果转化为列表。
# 最后，使用 sum() 函数计算列表中所有元素的和，并将该和赋值给字典 d 中键为 i 的值。
# 总的来说，这段代码计算了从 1 到 n 的每个数各个位上的数字之和，并将其存储在字典中，其中键为数，值为各个位上数字之和。
for i in range(1, n + 1):
    # 将每个整数转换为其各位数字之和，作为字典的键值对。
    # 例如，整数 123 的各位数字之和是 6，因此在字典中以 123 作为键，6 作为值。
    d[i] = sum(list(map(int, str(i))))  # 建立字典里的键值对

l = list(d.items())  # 将字典的键值对转换成列表方便排序

# 使用 sorted 函数和 lambda 函数对列表 l 进行排序，排序的依据是每个元组的第二个元素（即字典的值）。
l.sort(key=lambda x: x[1])  # 按第二个参数排序
# 调用列表 l 的 sort() 方法进行排序，使用 key 参数指定排序的依据。
# 在这里，使用了一个匿名函数 lambda x: x[1] 作为 key 参数，表示对列表中的每个元素 x，排序的依据是其第二个参数 x[1]。
# 排序后，列表 l 的元素按照第二个参数的值进行升序排序。

print(l[m - 1][0])
# 输出排序后第 m 小的元素的键。注意，由于 Python 的索引是从 0 开始的，所以需要将 m 减去 1 来获取正确的元素。
'''

'''
input:
13
5
print:
3
d字典：
d={1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7,
8: 8, 9: 9, 10: 1, 11: 2, 12: 3, 13: 4}
l排序前:
l=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7),
(8, 8), (9, 9), (10, 1), (11, 2), (12, 3), (13, 4)]
l排序后:
l=[(1, 1), (10, 1), (2, 2), (11, 2), (3, 3), (12, 3), (4, 4),
(13, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]
'''




# 方法二
'''
time += 8 min
value += 10

这道题主要是排序，通过sort()
的参数key，决定排序方法。
key = lambda x: sum(int(i) for i in str(x))
另一个比较常用的参数reverse – 排序规则，reverse = True
降序 ， reverse = False
升序（默认）
'''
'''
n = int(input())
m = int(input())
s = list(range(1, n + 1))
# 对列表 s 进行排序，排序的依据是每个数 x 各个位上的数字之和。
# 使用了一个匿名函数 lambda x: sum(int(i) for i in str(x)) 作为 key 参数，
# 表示对列表中的每个元素 x，排序的依据是将其转化为字符串后，每个字符转化为整数，然后求和。
s.sort(key=lambda x: sum(int(i) for i in str(x))) # 重点内容记得背诵
print(s[m - 1])
'''

n = int(input())
m = int(input())
d = dict()
for i in range(1, n + 1):
    d[i] = sum(list(map(int, str(i))))  # 建立字典里的键值对
    # print(d[i], end=' ')  # 1 2 3 4 5 6 7 8 9 1 2 3 4
# print(d)  # {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 1, 11: 2, 12: 3, 13: 4}
l = list(d.items())  # 将字典的键值对转换成列表方便排序
# [(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 1), (11, 2), (12, 3), (13, 4)]
# print(l)
l.sort(key=lambda x: x[1])  # 按第二个参数排序
print(l[m - 1][0])






n = int(input())
m = int(input())
dict1 = {}
for i in range(1, n+1):
    dict1[i] = sum(list(map(int, str(i))))
l = list(dict1.items())
l.sort(key=lambda x: x[1])
print(l[m-1][0])




# 方法三
n=int(input())
m=int(input())
lst=[(0,0)]

#数位和
def func(x):
    sum=0
    while x:
        t=x%10
        sum+=t
        x=x//10

    return sum

for i in range(1,n+1):
    lst.append((func(i),i))

lst.sort()
print(lst[m][1])